/**
 * \defgroup Interfaces interface classes
 */

/**
 * \class ICloneable ICloneable.h AbsSyn/ICloneable.h
 *
 *
 *  Created on: 1 apr 2011
 *      Author: ytc0039
 *
 *  \ingroup Interfaces
 */

#ifndef ICLONEABLE_H_
#define ICLONEABLE_H_

/// \todo Implement shared_ptr on clonable
//#include <boost/shared_ptr.hpp>

class ICloneable {
public:
	virtual ~ICloneable(){};

	/**
	 * \defgroup Cloneable Cloneable Items
	 *
	 */

	/**
	 * \addtogroup Cloneable
	 *
	 * \brief Interface for cloneing an item
	 *
	 * @return clone
	 */
	virtual ICloneable* clone() const=0;

};

#endif /* ICLONEABLE_H_ */
